package com.gcsj.gcsjspringboot.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gcsj.gcsjspringboot.dao.SysDeptDao;
import com.gcsj.gcsjspringboot.entity.DeptPage;
import com.gcsj.gcsjspringboot.entity.SysDeptEntity;
import com.gcsj.gcsjspringboot.service.SysDeptService;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;


@Service("sysDeptService")
public class SysDeptServiceImpl extends ServiceImpl<SysDeptDao, SysDeptEntity> implements SysDeptService {


    /**
     * 删除时查看该部门下面是否还有子部门，如果没有才能删除
     * @param parentId 父级部门id
     * @return 子部门总数
     */
    @Override
    public int subDeptID(Integer parentId) {
        QueryWrapper<SysDeptEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("parent_id", parentId);
        return baseMapper.selectCount(queryWrapper);
    }

    @Override
    public IPage<SysDeptEntity> getPage(DeptPage deptPage) {
        QueryWrapper<SysDeptEntity> qw = new QueryWrapper<>();
        qw.like("name",deptPage.getName());
        IPage<SysDeptEntity> page = new Page<>(deptPage.getCurrentPage(), deptPage.getPageSize());
        baseMapper.selectPage(page,qw);
        return page;
    }

    @Override
    public List<SysDeptEntity> getBasicDepts() {
        QueryWrapper<SysDeptEntity> qw = new QueryWrapper<>();
        qw.isNull("parent_name").or().eq("parent_name", "");
        List<SysDeptEntity> list =  baseMapper.selectList(qw);
        SysDeptEntity sysDeptEntity = new SysDeptEntity();
        sysDeptEntity.setDeptId(null);
        sysDeptEntity.setDelFlag(0);
        sysDeptEntity.setName("无");
        sysDeptEntity.setParentId(null);
        sysDeptEntity.setParentName(null);
        list.add(sysDeptEntity);
        return list;
    }


}
